home *** CD-ROM | disk | FTP | other *** search
- /*********************************************************************/
- /* */
- /* TWILIGHT.H - Includedatei für TwiLight-Schonermodule */
- /* Beginn: 16.03.1993 */
- /* Erweiterung: ab Anfang 1994 */
- /* Letzte Änderung: 09.04. 1996 */
- /* */
- /* Achtung: */
- /* Neue Funktionen und Variablen der 2.0 (Vorversion) sind noch */
- /* nicht alle in TWILIGHT.H übernommen! */
- /* */
- /* */
- /* */
- /* Autor: Delirium Arts */
- /* */
- /* */
- /* Tabsize=3 */
- /*********************************************************************/
-
-
- #ifndef __TWILIGHT
- #define __TWILIGHT
-
- /* Limits */
-
-
- #define MAX_COL 100 /* max. number of sprites which strikes together... */
- #define MAX_SPRITES 200 /* max. number of sprites... */
-
- /* some types... */
-
- /* some types... */
-
- #ifndef __PORTAB__
- #define __PORTAB__
-
- typedef void VOID; /* VOID type */
- typedef unsigned char UBYTE; /* unsigned 8 bit integer */
- typedef unsigned int UWORD; /* unsigned 16 bit integer */
-
- #endif /* __PORTAB__ */
-
-
- typedef signed char SBYTE; /* signed 8 bit integer */
- typedef signed int SWORD; /* signed 16 bit integer */
- typedef signed long SLONG; /* signed 32 bit integer */
- typedef unsigned long ULONG; /* unsigned 32 bit integer */
- typedef signed int SCODE; /* Status Code */
- typedef VOID * XPOINT; /* pointer to anything */
- typedef SBYTE * STRING; /* String */
-
-
- typedef struct /* Structure for tl_play_mouse */
- {
- UWORD button; /* Status of the mouse buttons; bit 0 and 1 */
- SWORD x; /* relative x-position of mouse. writable! */
- SWORD y; /* y-position. Read the manual for more infos */
- }TL_MOUSE;
-
- typedef struct /* Structure for tl_sprite */
- {
- SWORD screen_flag; /* 0: Sprite is visible, -1: it isn't... */
- SWORD object[MAX_COL]; /* number of sprites*4(!), with which the */
- }COLLISION; /* painted one crashes. It can crash max.
- 100 other sprites...
- At the end of this list you find -1
- If object[0]=-1, the object doesn't crash */
-
-
- typedef struct /* for the OBJ_STRUCT */
- {
- XPOINT obj_data; /* Pointer to the Sprite-Data */
- XPOINT obj_mask; /* Pointer to the Mask */
- }DATA_MASK;
-
- typedef struct /* Information about the objects */
- {
- UWORD width; /* what? ;-) */
- UWORD height;
- UWORD animation; /* Number of animations-1 */
- DATA_MASK data[]; /* Pointers to the datas... */
- }OBJ_STRUCT;
-
- typedef struct /* Sprite status block */
- {
- SWORD x; /* x-Position des Sprites auf dem Schirm */
- SWORD y; /* y... */
- UWORD width; /* Nochmal die Breite des Sprites */
- UWORD height; /* Höhe... */
- SWORD dx; /* So viel bewegt sich das Sprite bei jedem */
- SWORD dy; /* Aufruf von tl_sprite in x- bzw. y-Richtung */
- SBYTE ani_count; /* Zähler für die Animationsstufen */
- UBYTE ani_speed; /* nach wieviel Durchgängen den Zähler eins runter */
- UWORD act_ani; /* Welche Animation gerade dargestellt wird. */
- OBJ_STRUCT *objects; /* Zeiger auf das Objekt */
- }SPRITE_STAT;
-
-
- typedef struct /* Sprite table; returned by tl_all_sprites */
- {
- SPRITE_STAT *sprite[MAX_SPRITES]; /* ^to the sprite stati */
- }SPRITE_TAB;
-
- typedef struct /* structure for Color-Table (CLUT) */
- {
- UWORD r; /* one WORD for R, G, B... */
- UWORD g;
- UWORD b;
- } COLOR;
-
-
-
- typedef struct /* the TwiLight-Info-Structure */
- { /* see manual! */
- UWORD tl_version;
- UWORD tl_handle;
- UWORD max_x;
- UWORD max_y;
- UWORD vscr_x;
- UWORD vscr_y;
- UWORD vscr_w;
- UWORD vscr_h;
- UWORD max_colors;
- UWORD palette;
- UWORD planes;
- UWORD raster_op;
- UBYTE cpu[4];
- UBYTE fpu[4];
- UBYTE mch[4];
- UBYTE snd[4];
- UBYTE *tl_screen_flag;
- STRING tl_path_adr;
- VOID *tl_screen_adr;
- ULONG tl_mem;
- ULONG tl_aes_global;
- ULONG tl_vdi_pb;
- UWORD tl_flags;
- SCODE cdecl (*tl_check)(VOID);
- SCODE cdecl (*tl_dim_col)(UWORD value);
- ULONG cdecl (*tl_mod_time)(VOID);
- VOID cdecl (*tl_set_col)(COLOR *tab,UWORD anzahl);
- VOID cdecl (*tl_scrn_restore)(VOID);
- SCODE cdecl (*tl_wait)(UWORD time);
- VOID cdecl (*tl_soundplay)(XPOINT adr,ULONG len,UWORD mode);
- VOID cdecl (*tl_soundstop)(VOID);
- VOID cdecl (*tl_paula)(STRING file);
- UBYTE tl_lang;
- UBYTE tl_reserved2a[3];
- UWORD tl_back_col; /* Neu ab V1.4ß: Vordergrund- und Hintergrundfarbe */
- UWORD tl_fore_col;
- TL_MOUSE *cdecl (*tl_play_mouse)(VOID);
- SCODE cdecl (*tl_scroll)(UWORD anz,STRING text);
-
- /* Die Sprite-Library (SPRITE.OVL) */
- VOID cdecl (*tl_sprite_col)(COLOR *tab,UWORD anzahl);
- SCODE cdecl (*tl_dither)(UWORD planes,UWORD breite,UWORD hoehe,XPOINT tab,XPOINT ziel,XPOINT quelle);
- ULONG cdecl (*tl_sprite_init)(XPOINT buffer,ULONG buf_len,XPOINT obj_struct,UWORD width,UWORD height,UWORD color_flag,UWORD restore_flag);
- XPOINT cdecl (*tl_sprite)(UWORD nummer);
- XPOINT cdecl (*tl_convert)(VOID *quelle,VOID *ziel,UWORD breite,UWORD hoehe,UWORD planes,XPOINT farbtab,UWORD farben,XPOINT dithertab);
-
- /* Neu ab Version 2.0: */
- VOID cdecl (*tl_new_dial)(XPOINT dial_adr);
- SCODE cdecl (*tl_get_cookie)(ULONG id,ULONG wert);
- XPOINT tl_phys_scrn;
- UWORD tl_scrn_format;
- UWORD tl_line_len;
-
- /* Erweiterte Sprite-Library (SPRITE.OVL ab TL-Version 2.0) */
- XPOINT cdecl (*tl_sprite_all)(STRING filename,UWORD farbflag);
- SCODE cdecl (*tl_sprite_del)(VOID);
- XPOINT cdecl (*tl_sprite_conv)(XPOINT *cinfo,UWORD farbflag,XPOINT dithertab,XPOINT farbtab);
- SWORD cdecl (*tl_sprite_set)(UWORD object,UWORD sprite,SWORD x,SWORD y,SWORD dx,SWORD dy,UWORD ani_speed);
- SCODE cdecl (*tl_bload)(STRING file, SWORD mode, XPOINT *adr, ULONG *size);
-
-
- /* Thread-Library (THREADS.OVL ab TL-Version 2.0) */
- SCODE (*tl_threads_init)(SWORD anzahl, ULONG stack_len);
- VOID (*tl_threads_exit)(VOID);
- SWORD (*tl_thread_install)(XPOINT routine);
- VOID (*tl_threads_stop)(VOID);
- SCODE (*tl_thread_msg)(SWORD id, SWORD msg);
- VOID (*tl_threads_do)(VOID);
- SCODE (*tl_thread_event)(VOID);
-
- }TL_INFO;
-
-
- typedef struct
- {
- UWORD length_of_xkonfig;
- VOID (*xroutine)(VOID);
- UBYTE *info_string;
- UWORD number_of_objects;
- VOID *object1;
- VOID *objectn;
- }XKONFIG;
-
- typedef struct{
- ULONG tlm_magic;
- UWORD tlm_version;
- UWORD tlm_min_acc;
- UBYTE tlm_name[24];
- UBYTE tlm_author[24];
- UWORD tlm_icon[48];
- ULONG tlm_mem_req;
- UWORD flags;
- XKONFIG *tlm_konfig;
- }MODULE_INFO;
-
-
-
- /* Makros */
-
- #define OK 0
-
- #ifndef FALSE
- #define TRUE 1
- #define FALSE 0
- #endif
- #ifndef NULL
- #define NULL ((VOID *) 0L)
- #endif
- #define UNUSED(x) x = x
-
- /* Flags des Moduls; Handbuch: Seite 25-26 (1. Auflage)
- bzw. Seite 30-31 (2. Auflage Nov. 1994) */
-
- #define TL_NOFLAG 0
- #define TL_CHANGESCREEN 1
- #define TL_CHANGECOLORS 2
- #define TL_NEEDVSYNCS 4
- #define TL_CLEARMOUSE 8
- #define TL_DARKENSCREEN 16
- #define TL_CLEARSCREEN 32
- #define TL_NEEDSPRITES 64
- #define TL_NEEDTHREADS 128
- #define TL_NEEDMC020 256
- #define TL_NEEDFPU 512
- #define TL_PLAYSAMPLE 1024
- #define TL_NEED_F_VIDEO 4096
- #define TL_NOCHECK 8192
- #define TL_ZOOM 16384
-
-
- /* Macros for Sound */
-
- #define M_6 0x80 /* Mono, 6 kHz */
- #define M_12 0x81 /* Mono, 12 kHz */
- #define M_25 0x82 /* Mono, 25 kHz */
- #define M_50 0x83 /* Mono, 50 kHz */
- #define S_6 0x00 /* Stereo, 6 kHz */
- #define S_12 0x01 /* Stereo, 12 kHz */
- #define S_25 0x02 /* Stereo, 25 kHz */
- #define S_50 0x03 /* Stereo, 50 kHz */
- #define MR_6 0x180 /* Repeat Mono, 6 kHz */
- #define MR_12 0x181 /* Repeat Mono, 12 kHz */
- #define MR_25 0x182 /* Repeat Mono, 25 kHz */
- #define MR_50 0x183 /* Repeat Mono, 50 kHz */
- #define SR_6 0x100 /* Repeat Stereo, 6 kHz */
- #define SR_12 0x101 /* Repeat Stereo, 12 kHz */
- #define SR_25 0x102 /* Repeat Stereo, 25 kHz */
- #define SR_50 0x103 /* Repeat Stereo, 50 kHz */
-
-
- /* Macros for tl_info -- see Manual! */
-
- #define _tl_version (tl_struct->tl_version)
- #define _tl_handle (tl_struct->tl_handle)
- #define _max_x (tl_struct->max_x)
- #define _max_y (tl_struct->max_y)
- #define _vscr_x (tl_struct->vscr_x)
- #define _vscr_y (tl_struct->vscr_y)
- #define _vscr_w (tl_struct->vscr_w)
- #define _vscr_h (tl_struct->vscr_h)
- #define _max_colors (tl_struct->max_colors)
- #define _palette (tl_struct->palette)
- #define _planes (tl_struct->planes)
- #define _raster_op (tl_struct->raster_op)
- #define _cpu (tl_struct->cpu)
- #define _fpu (tl_struct->fpu)
- #define _mch (tl_struct->mch)
- #define _snd (tl_struct->snd)
- #define _tl_screen_flag (tl_struct->tl_screen_flag)
- #define _tl_path_adr (tl_struct->tl_path_adr)
- #define _tl_screen_adr (tl_struct->tl_screen_adr)
- #define _tl_mem (tl_struct->tl_mem)
- #define _tl_aes_global (tl_struct->tl_aes_global)
- #define _tl_vdi_pb (tl_struct->tl_vdi_pb)
- #define _tl_flags (tl_struct->tl_flags)
- #define tl_check (tl_struct->tl_check)
- #define tl_dim_col(value) (tl_struct->tl_dim_col(value))
- #define tl_mod_time (tl_struct->tl_mod_time)
- #define tl_set_col(tab,anzahl) (tl_struct->tl_set_col(tab,anzahl))
- #define tl_scrn_restore (tl_struct->tl_scrn_restore)
- #define tl_wait(time) (tl_struct->tl_wait(time))
- #define tl_soundplay(adr,len,mode) (tl_struct->tl_soundplay(adr,len,mode))
- #define tl_soundstop (tl_struct->tl_soundstop)
- #define tl_paula(adr) (tl_struct->tl_paula(adr))
- #define _tl_lang (tl_struct->tl_lang)
- #define tl_back_col (tl_struct->tl_back_col)
- #define tl_fore_col (tl_struct->tl_fore_col)
- #define tl_play_mouse (tl_struct->tl_play_mouse)
- #define tl_scroll(anz,text) (tl_struct->tl_scroll(anz,text))
- #define tl_sprite_col(tab,anzahl) (tl_struct->tl_sprite_col(tab,anzahl))
- #define tl_dither(planes,breite,hoehe,tab,ziel,quelle) (tl_struct->(planes,breite,hoehe,tab,ziel,quelle))
- #define tl_sprite_init(buffer,buf_len,obj_struct,width,height,color_flag,restore_flag) (tl_struct->tl_sprite_init(buffer,buf_len,obj_struct,width,height,color_flag,restore_flag)
- #define tl_sprite(num) (tl_struct->tl_sprite(num))
- #define tl_convert(quelle,ziel,breite,hoehe,planes,farbtab,farben,dithertab) (tl_struct->tl_convert(quelle,ziel,breite,hoehe,planes,farbtab,farben,dithertab))
- #define tl_new_dial(dial_adr) (tl_struct->tl_new_dial(dial_adr))
- #define tl_get_cookie(id,wert) (tl_struct->tl_get_cookie(id,wert))
- #define _tl_phys_scrn (tl_struct->tl_phys_scrn)
- #define _tl_scrn_format (tl_struct->tl_scrn_format)
- #define _tl_line_len (tl_struct->tl_line_len)
- #define tl_sprite_all(filename,farbflag) (tl_struct->tl_sprite_all(filename,farbflag))
- #define tl_sprite_del (tl_struct->tl_sprite_del)
- #define tl_sprite_conv(cinfo,farbflag,dithertab,farbtab) (tl_struct->tl_sprite_conv(cinfo,farbflag,dithertab,farbtab))
- #define tl_sprite_set(object,sprite,x,y,dx,dy,ani_speed) (tl_struct->tl_sprite_set(object,sprite,x,y,dx,dy,ani_speed))
- #define tl_bload(file,mode,adr,size) (tl_struct->tl_bload (file,mode,adr,size))
-
- #define tl_threads_init(anzahl, stack_len) (tl_struct->tl_threads_init(anzahl, stack_len))
- #define tl_threads_exit (tl_struct->tl_threads_exit)
- #define tl_thread_install(routine) (tl_struct->tl_thread_install(routine))
- #define tl_threads_stop (tl_struct->tl_threads_stop)
- #define tl_thread_msg(id, msg) (tl_struct->tl_thread_msg(id, msg)
- #define tl_threads_do (tl_struct->tl_threads_do)
- #define tl_thread_event (tl_struct->tl_thread_event)
-
-
-
-
-
-
- /* Makro für Sound: Spiele nur dann Sound, wenn die Adresse als SLONG größer als 0 ist! */
-
- #define tl_sound(adr,len,mode); {if ((SLONG)adr>0) tl_soundplay(adr,len,mode);}
-
-
- /* Unterfunktion um Speicher zu holen */
-
- /* XPOINT xmalloc(ULONG speicher, WORD mode); */
-
- XPOINT xmalloc(ULONG speicher, UWORD mode)
- {
- register SLONG temp;
-
- if (-32==(temp=(SLONG)Mxalloc(speicher, mode)))
- temp=(SLONG)Malloc(speicher);
- return (XPOINT)temp;
- }
-
-
-
- /* Global functions... */
-
- VOID RETURN(VOID);
-
-
-
- #endif /* ifndef __TWILIGHT */